import App from "./App.vue";
import router from "./router";
import VueI18n from "vue-i18n";
import { messages } from "./views/i18n";
import "./plugins/element";
// import './assets/css/theme-green/index.css'; // 浅绿色主题
import "./assets/css/icon.css";
import "./views/directives";
import { library } from "@fortawesome/fontawesome-svg-core";
import { faUserSecret } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
library.add(faUserSecret);

Vue.component("font-awesome-icon", FontAwesomeIcon);
// import 'babel-polyfill';
import axios from "./plugins/request/http";
Vue.config.productionTip = false;
Vue.use(VueI18n);
Vue.prototype.$axios = axios;
const i18n = new VueI18n({
  locale: "zh",
  messages
});

//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
  document.title = `${to.meta.title} | vue-manage-system`;
  const role = localStorage.getItem("ms_username");
  if (!role && to.path !== "/login") {
    next("/login");
  } else if (to.meta.permission) {
    // 如果是管理员权限则可进入，这里只是简单的模拟管理员权限而已
    role === "admin" ? next() : next("/403");
  } else {
    // 简单的判断IE10及以下不进入富文本编辑器，该组件不兼容
    if (navigator.userAgent.indexOf("MSIE") > -1 && to.path === "/editor") {
      Vue.prototype.$alert(
        "vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看",
        "浏览器不兼容通知",
        {
          confirmButtonText: "确定"
        }
      );
    } else {
      next();
    }
  }
});

new Vue({
  router,
  i18n,
  render: h => h(App)
}).$mount("#app");
